home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Enigma Amiga Life 109
/
EnigmaAmiga109CD.iso
/
dalla rivista
/
amiga.free
/
sorgenti vari
/
wolfedit2 2.0.4 source.sit
/
WolfEdit2 2.0.4 Source
/
UPeekArt.p
< prev
next >
Wrap
Text File
|
1995-10-16
|
3KB
|
140 lines
unit UPeekArt;
interface
uses
UWolfDoc;
procedure PeekArt;
implementation
uses
UEditArt;
const
peekArtDlogID = 139;
brgrIdItem = 2;
imageItem = 3;
loadItem = 4;
wallItem = 5;
objectItem = 6;
brgrNotFoundAlrtID = 146;
cantOpenAlrtID = 8194;
type
TPeekArtDialog = object(TArtEditDialog)
fResFile: integer;
fIsObject: boolean;
procedure IPeekArtDialog (itsResFile: integer);
procedure UninstallArt;
override;
procedure InstallArt;
override;
procedure ItemHit (var e: EventInfo; itemNo: integer);
override;
function TPeekArtDialog.GetArtResource (id: integer): Handle;
end;
procedure TPeekArtDialog.IPeekArtDialog (itsResFile: integer);
begin
IArtEditDialog(peekArtDlogID, nil, nil, false);
fResFile := itsResFile;
fIsObject := true;
DefineGroup(wallItem, objectItem);
SetGroupSelection(wallItem + ord(fIsObject));
SetDefaultItem(loadItem);
SetDismissItems([ok]);
end;
procedure TPeekArtDialog.UninstallArt;
begin
end;
procedure TPeekArtDialog.InstallArt;
var
h: Handle;
begin
if fCurrentArt >= 0 then begin
h := GetArtResource(fCurrentArt);
if h <> nil then
if fIsObject then
fArtView.InstallObject(ObjectArtHandle(h))
else
fArtView.InstallWall(WallArtHandle(h));
end;
end;
function TPeekArtDialog.GetArtResource (id: integer): Handle;
var
h: Handle;
oldResFile: integer;
begin
oldResFile := CurResFile;
UseResFile(fResFile);
h := Get1Resource('BRGR', id);
UseResFile(oldResFile);
if h = nil then
DoAlert(brgrNotFoundAlrtID);
GetArtResource := h;
end;
procedure TPeekArtDialog.ItemHit (var e: EventInfo; itemNo: integer);
begin
inherited ItemHit(e, itemNo);
case itemNo of
loadItem:
SelectArt(GetItemNum(brgrIdItem));
wallItem:
fIsObject := false;
objectItem:
fIsObject := true;
otherwise
;
end;
end;
function OpenArtFile: integer;
var
reply: StandardFileReply;
types: SFTypeList;
oldResFile: integer;
procedure Check (result: OSErr);
begin
if result <> noErr then begin
ErrorAlert(cantOpenAlrtID, reply.sfFile.name, result);
OpenArtFile := 0;
exit(OpenArtFile);
end;
end;
begin {OpenArtFile}
StandardGetFile(nil, -1, types, reply);
if reply.sfGood then begin
oldResFile := CurResFile;
OpenArtFile := FSpOpenResFile(reply.sfFile, fsRdPerm);
Check(ResError);
UseResFile(oldResFile);
end
else
OpenArtFile := 0;
end;
procedure PeekArt;
var
dlog: TPeekArtDialog;
i, resFile: integer;
begin
resFile := OpenArtFile;
if resFile <> 0 then begin
new(dlog);
dlog.IPeekArtDialog(resFile);
i := dlog.DoModalDialog;
dlog.Free;
CloseResFile(resFile);
end;
end;
end.